//package com.hippoDocker.uaa.utils;
//
//import cn.hutool.core.util.StrUtil;
//import io.jsonwebtoken.Claims;
//import io.jsonwebtoken.Jwts;
//import io.jsonwebtoken.SignatureAlgorithm;
//
//import java.util.Date;
//import java.util.HashMap;
//import java.util.Map;
//
///**
// * @Auther: tangxl
// * @Date: 2021年11月30日14:47:01
// * @Description: Token生成工具类
// */
//public class JwtUtil {
//    //失效时间(与redis失效时间相同)--24小时
//    private static final long expireTime = 24*60*60*1000;
//    //密钥明文
//    private static final String privateKey = "hippoDocker";
//
//    /**
//     * 生成UUID唯一序列
//     * @return
//     */
//    public static String getUUID(){
//        String token = StrUtil.uuid().replaceAll("-","");
//        return token;
//    }
//
//    /**
//     * 签名生成（JWT生成Token）
//     * @param expireTime 有效时间 分钟
//     * @return
//     */
//    public static String createJWT(String id, Long expireTime){
//        if (expireTime == null) {
//            expireTime = JwtUtil.expireTime;
//        }
//        Map<String,Object> header = new HashMap<>();
//        header.put("typ","jwt");
//        header.put("alg","HS256");
//        Map<String, Object> claims = new HashMap<>();
//        //自定义有效载荷部分
//        String uuid = getUUID();
//        claims.put("uuid",uuid);
//        claims.put("id",id);
//        String jwt = Jwts.builder()
//                //发证人
//                .setIssuer("auth")
//                //Jwt头
//                .setHeader(header)
//                //有效载荷
//                .setClaims(claims)
//                //设定签发时间
//                .setIssuedAt(new Date())
//                //设定过期时间
//                .setExpiration(new Date(System.currentTimeMillis() + expireTime))
//                //使用HS256算法签名，PRIVATE_KEY为签名密钥
//                .signWith(SignatureAlgorithm.HS256,privateKey)
//                .compact();
//        return jwt;
//    }
//
//    /**
//     * JWT解密
//     * @param token
//     * @return
//     */
//    public static String parseJWT(String token){
//        //获取DefaultJwtParser
//        try{
//           Claims claims = Jwts.parser()
//                    //设置 密钥
//                    .setSigningKey(privateKey)
//                    //设置需要解析的 token
//                    .parseClaimsJws(token).getBody();
//           String parsedJWT = claims.get("id",String.class);
//           return parsedJWT;
//        }catch (Exception e){
//            return null;
//        }
//    }
//
//    //测试
//    public static void main(String[] args) {
//        String token = createJWT("admin",null);
//        System.out.println(token);
//    }
//}
